﻿' LibWowArmory
' by Ronald M. Clifford (roncli@roncli.com)
'
' This source code is released under the GNU Library General Public License (LGPL) Version 2.1.

Namespace roncliProductions.LibWowArmory

    ''' <summary>
    ''' The enumerations available in this namespace
    ''' </summary>
    ''' <remarks></remarks>
    Public Module Enums

        ''' <summary>
        ''' An enumeration to describe an item's rarity
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum RarityType
            'The numbers listed here correspond to the rarity values in the item search results
            All = -1
            Poor = 0
            Common = 1
            Uncommon = 2
            Rare = 3
            Epic = 4
            Legendary = 5
            Heirloom = 6
        End Enum

        ''' <summary>
        ''' An enumeration to describe a source filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum SourceType
            AllSources = 0
            DungeonsAndRaidDrops = 1
            ReputationRewards = 2
            QuestRewards = 3
            PvpRewardsAlliance = 4
            PvpRewardsHorde = 5
        End Enum

        ''' <summary>
        ''' An enumeration to describe a dungeon filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum DungeonType
            AllDungeonsAndRaids = 0
            DungeonsOnly = 1
            RaidsOnly = 2
            BadgeOfJusticeRewards = 3
            EmblemOfHeroism = 4
            EmblemOfValor = 5
            EmblemOfConquest = 6
        End Enum

        ''' <summary>
        ''' An enumeration to describe a dungeon difficulty filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum DifficultyType
            NormalAndHeroic = 0
            NormalOnly = 1
            HeroicOnly = 2
        End Enum

        ''' <summary>
        ''' An enumeration to describe the PvP Alliance filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum PvpAllianceSourceType
            AllPvpSources = 0
            Wintergrasp = 1
            ArenaSeason6 = 2
            ArenaSeason5 = 3
            ArenaSeason4 = 4
            HonorRewards = 5
            ArathiBasin = 6
            AlteracVally = 7
            WarsongGulch = 8
            Halaa = 9
            HonorHold = 10
            Terokkar = 11
            Zangarmarsh = 12
        End Enum

        ''' <summary>
        ''' An enumeration to describe the PvP Horde filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum PvpHordeSourceType
            AllPvpSources = 0
            Wintergrasp = 1
            ArenaSeason6 = 2
            ArenaSeason5 = 3
            ArenaSeason4 = 4
            HonorRewards = 5
            ArathiBasin = 6
            AlteracVally = 7
            WarsongGulch = 8
            Halaa = 9
            Thrallmar = 10
            Terokkar = 11
            Zangarmarsh = 12
        End Enum

        ''' <summary>
        ''' An enumeration to describe an item type filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum ItemTypeType
            AllItems = 0
            Weapons = 1
            Armor = 2
            Gems = 3
            Containers = 4
            Consumables = 5
            TradeGoods = 6
            Projectiles = 7
            Quivers = 8
            Recipes = 9
            Reagents = 10
            Miscellaneous = 11
            EnchantmentsPermanent = 12
            EnchantmentsTemporary = 13
            Mounts = 14
            SmallPets = 15
            Keys = 16
            Glyphs = 17
        End Enum

        ''' <summary>
        ''' An enumeration to describe a desired by filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum DesiredByType
            'The numbers listed here correspond to the values listed in the select box of the armory
            AnyClass = 0
            DeathKnight = 6
            Druid = 11
            Hunter = 3
            Mage = 8
            Paladin = 2
            Priest = 5
            Rogue = 4
            Shaman = 7
            Warlock = 9
            Warrior = 1
        End Enum

        ''' <summary>
        ''' An enumeration to further describe a desired by filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum DesiredByRoleType
            AnyType = 0
            Tank = 1
            MeleeDPS = 2
            CasterDPS = 3
            Healer = 4
            PlusDamageOnly = 5
            PlusDamageAndCrit = 6
        End Enum

        ''' <summary>
        ''' An enumeration to describe a weapon slot filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum WeaponSlotType
            AllSlots = 0
            MainHand = 1
            OffHand = 2
            MainOrOffHand = 3
            TwoHanded = 4
            Ranged = 5
        End Enum

        ''' <summary>
        ''' An enumeration to describe a weapon type filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum WeaponTypeType
            AllWeaponTypes = 0
            OneHandedAxes = 1
            TwoHandedAxes = 2
            Bows = 3
            Guns = 4
            OneHandedMaces = 5
            TwoHandedMaces = 6
            Polearms = 7
            OneHandedSwords = 7
            TwoHandedSwords = 8
            Staves = 9
            FistWeapons = 10
            Miscellanous = 11
            Daggers = 12
            Thrown = 13
            Crossbows = 14
            Wands = 15
            FishingPole = 16
        End Enum

        ''' <summary>
        ''' An enumeration to describe an armor slot filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum ArmorSlotType
            AllSlots = 0
            Head = 1
            Neck = 2
            Shoulders = 3
            Back = 4
            Chest = 5
            Shirt = 6
            Wrists = 7
            Hands = 8
            Waist = 9
            Legs = 10
            Feet = 11
            Finger = 12
            Trinket = 13
            OffHandFrill = 14
        End Enum

        ''' <summary>
        ''' An enumeration to describe an armor type filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum ArmorTypeType
            AllArmorTypes = 0
            Cloth = 1
            Leather = 2
            Mail = 3
            Plate = 4
            Shield = 5
            Idol = 6
            Libram = 7
            Totem = 8
            Sigil = 9
            Miscellaneous = 10
        End Enum

        ''' <summary>
        ''' An enumeration to describe a gem type filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum GemTypeType
            AllGemTypes = 0
            Blue = 1
            Red = 2
            Yellow = 3
            Meta = 4
            Green = 5
            Orange = 6
            Purple = 7
            Prismatic = 8
        End Enum

        ''' <summary>
        ''' An enumeration to describe a bag type filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum BagTypeType
            AllBags = 0
            Bag = 1
            SoulBag = 2
            HerbBag = 3
            EnchantingBag = 4
            EngineeringBag = 5
            GemBag = 6
            MiningBag = 7
        End Enum

        ''' <summary>
        ''' An enumeration to describe a projectile type filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum ProjectileTypeType
            AllProjectiles = 0
            Arrow = 1
            Bullet = 2
        End Enum

        ''' <summary>
        ''' An enumeration to describe a quiver type filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum QuiverTypeType
            AllQuivers = 0
            Quiver = 1
            AmmoPouch = 2
        End Enum

        ''' <summary>
        ''' An enumeration to describe a recipe type filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum RecipesTypeType
            AllRecipes = 0
            Books = 1
            Leatherworking = 2
            Tailoring = 3
            Engineering = 4
            Blacksmithing = 5
            Cooking = 6
            Alchemy = 7
            FirstAid = 8
            Enchanting = 9
            Fishing = 10
            Jewelcrafting = 11
        End Enum

        ''' <summary>
        ''' An enumeration to describe a permanent enchantment slot filter
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum PermanentEnchantmentSlotType
            ' The numbers here match the numbers for the ArmorSlotType enum
            AllSlots = 0
            Head = 1
            Shoulders = 3
            Back = 4
            Chest = 5
            Wrists = 7
            Hands = 8
            Legs = 10
            Feet = 11
            Finger = 12
            Weapon = 15
            Shield = 16
        End Enum

        ''' <summary>
        ''' An enumeration to describe advanced filter options
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum AdvancedOptionsType
            BaseStat_Strength = 0
            BaseStat_Agility = 1
            BaseStat_Stamina = 2
            BaseStat_Intellect = 3
            BaseStat_Spirit = 4
            General_CritRating = 5
            General_HitRating = 6
            General_HasteRating = 7
            PhysicalCombat_AttackPower = 8
            PhysicalCombat_FeralAttackPower = 9
            PhysicalCombat_ArmorPenetration = 10
            PhysicalCombat_ExpertiseRating = 11
            Spell_SpellPower = 12
            Spell_SpellCritRating = 13
            Spell_SpellHitRating = 14
            Spell_Penetration = 15
            Spell_ManaRegen = 16
            Spell_SpellHasteRating = 17
            Spell_ArcaneDamage = 18
            Spell_HolyDamage = 19
            Spell_ShadowDamage = 20
            Spell_NatureDamage = 21
            Spell_FrostDamage = 22
            Spell_FireDamage = 23
            Defense_Armor = 24
            Defense_BlockRating = 25
            Defense_BlockValue = 26
            Defense_DefenseRating = 27
            Defense_DodgeRating = 28
            Defense_ParryRating = 29
            Defense_HealthRegen = 30
            Defense_Resilience = 31
            Resistance_ArcaneResist = 32
            Resistance_ShadowResist = 33
            Resistance_NatureResist = 34
            Resistance_FrostResist = 35
            Resistance_FireResist = 36
            Weapon_Dps = 37
            Weapon_MinDamage = 38
            Weapon_MaxDamage = 39
            Weapon_Speed = 40
            General_BindOnPickup = 41
            General_BindOnEquip = 42
            General_BindOnUse = 43
            General_Unique = 44
            General_UniqueEquipped = 45
            General_SpellEffect_ChanceToResist = 46
            General_SpellEffect_AvoidInterruption = 47
            General_SpellEffect_ChanceOnHitOrCast = 48
            General_SpellEffect_DispelEffects = 49
            General_SpellEffect_ReduceCooldown = 50
            General_SpellEffect_ReduceCastTime = 51
            General_SpellEffect_ReduceSpellCost = 52
            General_SpellEffect_IncreaseDuration = 53
            General_SpellEffect_IncreaseRange = 54
            General_SpellEffect_ReduceThreat = 55
            General_SpellEffect_GroupBuff = 56
            General_SpellEffect_SummonCreature = 57
        End Enum

        ''' <summary>
        ''' An enumeration to describe an advanced filter option's operator
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum AdvancedOptionsOperatorType
            GreaterThan = 0
            GreaterThanEqualTo = 1
            EqualTo = 2
            LessThan = 3
            LessThanEqualTo = 4
        End Enum

        ''' <summary>
        ''' An enumeration to describe a World of Warcraft release
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum ReleaseType
            Classic = 0
            BurningCrusade = 1
            WrathOfTheLichKing = 2
        End Enum

        ''' <summary>
        ''' An enumeration to describe a faction
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum FactionType
            None = -1
            Alliance = 0
            Horde = 1
        End Enum

        ''' <summary>
        ''' An enumeration to describe a drop rate
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum DropRateType
            None = 0

            ''' <summary>
            ''' 1% to 2%
            ''' </summary>
            ''' <remarks></remarks>
            ExtremelyLow = 1

            ''' <summary>
            ''' 3% to 14%
            ''' </summary>
            ''' <remarks></remarks>
            VeryLow = 2

            ''' <summary>
            ''' 15% to 24%
            ''' </summary>
            ''' <remarks></remarks>
            Low = 3

            ''' <summary>
            ''' 25% to 50%
            ''' </summary>
            ''' <remarks></remarks>
            Medium = 4

            ''' <summary>
            ''' 51% to 99%
            ''' </summary>
            ''' <remarks></remarks>
            High = 5

            Guaranteed = 6
        End Enum

        ''' <summary>
        ''' An enumeration to describe an NPC's classification
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum ClassificationType
            Normal = 0
            Elite = 1
            RareElite = 2
            Boss = 3
            Rare = 4
        End Enum

        ''' <summary>
        ''' An enumeration to describe a race
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum RaceType
            'The numbers listed here correspond to the values of races on the armory
            Unknown = 0
            Human = 1
            Orc = 2
            Dwarf = 3
            NightElf = 4
            Undead = 5
            Tauren = 6
            Gnome = 7
            Troll = 8
            BloodElf = 10
            Draenei = 11
        End Enum

        ''' <summary>
        ''' An enumeration to describe a gender
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum GenderType
            'The numbers listed here correspond to the values of genders on the armory
            Unknown = -1
            Male = 0
            Female = 1
        End Enum

        ''' <summary>
        ''' An enumeration to describe a class
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum ClassType
            'The numbers listed here correspond to the values of classes on the armory
            Unknown = 0
            DeathKnight = 6
            Druid = 11
            Hunter = 3
            Mage = 8
            Paladin = 2
            Priest = 5
            Rogue = 4
            Shaman = 7
            Warlock = 9
            Warrior = 1
        End Enum

        ''' <summary>
        ''' An enumeration to describe types of calendar events
        ''' </summary>
        ''' <remarks></remarks>
        Public Enum CalendarType
            'The numbers listed here correspond to the values of calendar event types on the armory

            ''' <summary>
            ''' Listing of battleground holidays.  Type "bg"
            ''' </summary>
            ''' <remarks></remarks>
            BattlegroundHolidays = 7

            ''' <summary>
            ''' Listing of Darkmoon Faire arrivals.  Type "darkmoon"
            ''' </summary>
            ''' <remarks></remarks>
            DarkmoonFaire = 6

            ''' <summary>
            ''' Listing of world holiday events.  Type "holiday"
            ''' </summary>
            ''' <remarks></remarks>
            WorldHolidays = 4

            ''' <summary>
            ''' Listing of weekly events, currently only the Stranglethorn Fishing Extravaganza.  Type "holidayWeekly"
            ''' </summary>
            ''' <remarks></remarks>
            WeeklyHolidays = 5

            ''' <summary>
            ''' Listing of raid lockout expirations.  Type "raidLockout"
            ''' </summary>
            ''' <remarks></remarks>
            RaidLockouts = 2

            ''' <summary>
            ''' Listing of general raid resets.  Type "raidReset"
            ''' </summary>
            ''' <remarks></remarks>
            RaidResets = 3
        End Enum

    End Module

End Namespace